package com.yauthor.module.services
{
	import mx.core.UIComponent;
	/**
	 * Interface for the DecorationSupplier service. 
	 * 'IDecorationSupplier' service allows adding decorations to the utopia modules and their elements.
	 * 
	 * Decoration added to the module by DecorationSupplier, will render it's self automatically. 
	 * 
	 * 'Look' of the decorations is defined in style properties of the related module.
	 * 
	 * To add decoration to a module, instance of this services must be acuired via module context.
	 * @see com.yauthor.module.IModule2
	 * @see com.yauthor.module.IModuleContext
	 * 
	 * @example Adding background and border decorations. 

	<listing version="3.0">
		var decorationSupplier:IDecorationSupplier = IModuleContext( context ).getService( IDecorationSupplier );
		decorationSupplier.addBorderDecoration(); 
	</listing>
	 * 
	 */
	  
	public interface IDecorationSupplier
	{
		/**
		 * Method adds border & background decoration to the specified UIComponent.
		 * @param component reference to object that will be decorated. If 'null' DecorationSupplier will draw the 
		 * decoration on a module related to the context, from which service was acuired.
		 * @see com.yauthor.module.IModuleContext      
		 */ 
		function addBorderDecoration( component:UIComponent = null ):void
	}
	
}